import { BasicFetchResult, SaaSPageParams } from '/@/api/model/baseModel';

// 获取指定应用下的租户成熟度分布 响应
export type MaturityTenantMap = {
  maturity: number;
  tenantNum: number;
};

// 获取指定应用指定成熟度的租户列表 请求
export type MaturityTenantListParams = {
  appId: string;
  maturity: number;
};

export type MaturityTenantListPageParams = { model: MaturityTenantListParams } & SaaSPageParams;

// 获取指定成熟度的租户列表 响应
export interface MaturityTenantListDto {
  tenantCode: string;
  tenantName: string;
  duration: number;
}

export type MaturityTenantPageResult = BasicFetchResult<MaturityTenantListDto[]>;

// 获取指定应用下的活跃用户数（汇总） 请求
export type AppActiveUserNumInTotalParams = {
  appId: string;
  stepType: number;
  startTime: string;
  endTime: string;
};

// 获取指定应用下的活跃用户数（汇总） 响应Map
export type AppActiveUserNumInTotalMap = {
  time: string;
  userNum: number;
};

// 获取指定应用下的活跃用户数（按租户） 请求
export type AppActiveUserNumByTenantParams = {
  appId: string;
  tenantCode: string;
  stepType: number;
  startTime: string;
  endTime: string;
};

// 获取指定应用下的活跃用户数（按租户） 响应Map
export type AppActiveUserNumByTenantMap = {
  time: string;
  userNum: number;
};

// 获取指定应用下的活跃用户数（按应用架构 & 套餐类型） 请求
export type AppActiveUserNumByArchTypeParams = {
  architecture: string;
  packageType: string;
  stepType: number;
  startTime: string;
  endTime: string;
};

// 获取指定应用下的活跃用户数（按租户） 响应Map
export type AppActiveUserNumByArchTypeMap = {
  time: string;
  userNum: number;
};

// 获取应用架构及套餐类型 响应
export interface AppArchAndPackageTypeResp {
  achitectures: string[];
  packageTypes: string[];
}

// 应用架构
export type AppArchitectureMap = {
  architecture: string;
  architectureNum: string;
};

// 套餐类型
export type PackageTypeMap = {
  type: string;
  typeNum: string;
};
